Direct Rambus Dynamic Random Access Memories, hereinafter referred to as DRDRAMs, are very fast, highly pipelined memory devices that are becoming an industry standard in high speed processing systems. DRDRAMs include a considerable amount of internal circuitry that supports the pipelined architecture so as to provide for very high communication bandwidths at the device boundary. DRDRAM sustained data transfer rates exceed 1 GB/s.
DRDRAMs, like most commercially available memories, include memory cells that are arranged in rows and columns. Unlike many commercially available memories, however, DRDRAMs are multi-bank devices that have memory cells logically arranged into banks that can be independently accessed. This results in multiple banks within each DRDRAM, each including a number of memory cells. Gathering the memory cells into banks, and allowing different banks to undergo separate operations simultaneously, increases the overall data transfer rate of the device.
Each bank is associated with one or more sense amplifiers that function to read data from, and write data to, the memory cells within the bank. The sense amplifiers serve as a data communications bridge between the banks of memory cells and the data buses external to the device. Banks are separately activated, possibly simultaneously, or overlapping in time, prior to a read or write operation. When a bank is activated, it communicates with one or more sense amplifiers. When the read or write operation is complete, the bank is deactivated, and the sense amplifiers are precharged, which readies the sense amplifiers for another operation.
Examples of DRDRAMs are described in: “Rambus Direct RDRAM 128/144-Mbit (256kx16/18x32s) Preliminary Information,” Document DL0059, V1.11, June 2000;; and “Rambus Direct RDRAM 256/288-Mbit (1Mx16/18x16d) Preliminary Information,” Document DL0105, V1.1, August 2000. The contents of the aforementioned documents are hereby incorporated by reference.
FIG. 1 shows a prior art multi-bank memory device. Memory device 100 includes memory cells arranged in rows and columns. Each column is shown as a vertical strip of memory cells, and each row is shown as a horizontal strip of memory cells. For example, strip 102 is a column that includes memory cells 120, 124, and 128, and strip 104 is a column that includes memory cells 130, 134, and 138. In memory device 100, each column corresponds to a single bank of memory cores. For example, memory cores 120, 124, and 128 of strip 102 are part of Bank 0, and memory cores 130, 134, and 136 of strip 104 are part of Bank 1. In similar fashion, strips 106 and 108 contain similar memory cells, such as 131, to form bank 2 and bank n-1 respectively. As shown in FIG. 1, memory device 100 is arranged into “n” banks labeled Bank 0 through Bank (n-1).
Each bank shares sense amplifiers with at least one other bank. For example, sense amplifiers 140, 142, and 144 are shared between memory cores in Bank 0 and memory cores in Bank 1, and sense amplifiers 146, 148, and 150 are shared between memory cores in Bank 1 and memory cores in Bank 2.
Local row decoders are arranged within the array of memory cores. Each local row decoder provides wordline addressing to memory cores in close proximity. For example, in FIG. 1, each of row decoders 122 and 126 provide row decoding for one or more of the memory cores in strip 102. Similarly, row decoders 132 and 163 provide row decoding for one or more of the memory cores in strip 104.
Column decoding, in contrast to row decoding, is performed globally. Column decode lines driven by column decoders typically traverse an entire row of memory cores, rather than only memory cores nearby. For example, column decoder 110 drives column decode lines 160 shown schematically in FIG. 1 as an arrow. One or more of column decode lines 160 traverse multiple memory cells of the row to enable sense amplifiers within the row across from the column decoder. For example, a column decode line that enables sense amplifiers 146 to read from memory core 131 in Bank 2 will typically travel over, under, or past memory cores 120 and 130 from Banks 0 and 1, respectively.
In memory devices that allow simultaneous access to multiple banks, such as DRDRAMs, column decode lines that traverse memory cores from multiple banks can be problematic, in part because column decode lines addressed to one bank can cause electrical noise in memory cores of other banks being accessed. If noise is great enough, data errors can result.
FIG. 2 shows a prior art sense amplifier suitable for use in a multi-bank memory. Sense amplifier 200 includes N-sense amplifier 202 and P-sense amplifier 204 coupled between sense nodes 232 and 234, isolation transistors 206A, 206B, 208A, and 208B, column decode transistors 210 and 212, and bank select transistors 216 and 218. Sense nodes 232 and 234 are coupled to input output (I/O) lines 224 and 222 through the column decode and bank select transistors. A column decode signal (Y-GATE) on node 214 is coupled to column decode transistors 210 and 212, and a bank select signal (BANK) on node 220 is coupled to bank select transistors 216 and 218. Other column decode lines 230 driven by the column decoder 110 (FIG. 1) pass nearby sense amplifier 200. Other column decode lines 230 are coupled to other sense amplifiers (not shown) in the same manner that Y-GATE is coupled to sense amplifier 200 on node 214.
The operation of sense amplifier 200 is well known. When data from a memory core either to the left or right of sense amplifier 200 is to be read, the appropriate isolation transistors are turned on by either signal ISOL or ISOR, and the N-sense and P-sense amplifiers are activated using signals NLAT and ACT, respectively. The data value (and its complement) being read appears on sense nodes 232 and 234. When both the column decode signal (Y-GATE) on node 214 and the bank select signal (BANK) on node 220 are asserted, transistors 210, 212, 216, and 218 turn on and couple sense amplifier 200 to I/O lines 222 and 224.
When sense amplifier 200 is used in a multi-bank memory device that allows simultaneous operations among banks, the other column decode lines 230 can be actively changing during the operation of sense amplifier 200, causing noise that can potentially cause a data error. For example, referring now back to FIG. 1, if sense amplifier 140 is sensing data from memory core 120 in bank 0 while a column decode line addressing sense amplifier 146 is changing, a data error in sense amplifier 140 can result. As memory devices become larger, and more banks are added, the problem becomes worse.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for alternate multi-bank memory devices.